package android.slc.box.core.property;

import android.slc.box.commonlibrary.compat.ValueWrap;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;

public interface WrapDataChangeListener<T> extends ChangeListener<ValueWrap<T>> {

    @Override
    default void changed(ObservableValue<? extends ValueWrap<T>> observable, ValueWrap<T> oldValue, ValueWrap<T> newValue) {
        if (newValue != null) {
            onChanged(newValue.getData());
        } else {
            onChanged(null);
        }
    }

    void onChanged(T value);
}
